/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;

import java.text.SimpleDateFormat;
import java.util.Date;
import persistencia.PersiPartida;
import persistencia.PersiTurno;

/**
 *
 * @author alumneDAM Partida
 *
 */
public class Partida {
    private String textoPartida;

    private final String JUGANDO = "JUGANDO";
    private final String TERMINADA = "TERMINADA";
    private int id_partida;
    private String id_jugador1;
    private String id_jugador2;
    private String estado;
    private String ganador;
    private Turno turno;
    private Date hora;
    private int posicionJ1;
    private int posicionJ2;
    private PersiTurno persiTurno = new PersiTurno();
    private PersiPartida pPartida = new PersiPartida();

    public Partida(String id_jugador1, String id_jugador2, int id_partida) {
        this.id_jugador1 = id_jugador1;
        this.id_jugador2 = id_jugador2;
        this.estado = JUGANDO;
         Date now=new Date();
        this.hora = new Date();
        this.posicionJ1 = 0;
        this.posicionJ2 = 0;
        this.ganador = "";
        id_partida=pPartida.crearPartida(this);
        this.turno = new Turno(id_partida, 1, id_jugador1);
        
    }

    public Partida(int id_partida, String id_jugador1, String id_jugador2, String estado, String ganador, int turno, Date hora, int posicionJ1, int posicionJ2) {
        this.id_partida = id_partida;
        this.id_jugador1 = id_jugador1;
        this.id_jugador2 = id_jugador2;
        this.estado = estado;
        this.ganador = ganador;
        this.turno = persiTurno.leeTurno(id_partida, turno);
        this.hora = hora;
        this.posicionJ1 = posicionJ1;
        this.posicionJ2 = posicionJ2;
    }

    public void nuevoTurno(String jugador) {
        turno.setJugadorActivo(jugador);
        turno.setNumeroSacado(0);
        turno.setDadoTirado(0);
        turno.setPreguntasUsadas(null);
        persiTurno.modificaTurno(turno);
    }

    public void terminarPartida(String jugador) {
        this.ganador = jugador;
        this.estado = TERMINADA;
        pPartida.guardarPartida(this);
    }

    public Partida cargarPartida(int partidaID) {
      //guardar los datos de la actual y cargar los datos de la seleccionada
        return pPartida.leerPartida(partidaID);
    }

    @Override
    public String toString() {
        return textoPartida;
    }
    
    public void toString(String nickname) {
        String oponente;
        
        if(id_jugador1.equals(nickname)){
                oponente=id_jugador2;
            }else{
                oponente=id_jugador1;
            }
        
        if(turno.getJugadorActivo().equals(nickname)){
            textoPartida= "Partida " + this.id_partida + ": " + oponente +"  Te toca";
        }else {
            textoPartida= "Partida " + this.id_partida + ": " + oponente;
        }
        
    }
    
    public int getId_partida() {
        return id_partida;
    }

    public String getId_jugador1() {
        return id_jugador1;
    }

    public String getId_jugador2() {
        return id_jugador2;
    }

    public String getEstado() {
        return estado;
    }

    public String getGanador() {
        return ganador;
    }

    public Turno getTurno() {
        return turno;
    }

    public Date getHora() {
        return hora;
    }

    public int getPosicionJ1() {
        return posicionJ1;
    }

    public int getPosicionJ2() {
        return posicionJ2;
    }

    public void setPosicionJ2(int posicionJ2) {
        this.posicionJ2 = posicionJ2;
    }

    public void setPosicionJ1(int posicionJ1) {
        this.posicionJ1 = posicionJ1;
    }

}
